# -*- coding: UTF-8 -*-

print "------ 变量赋值 ------"
counter = 100  # 赋值整型变量
miles = 1000.0  # 浮点型
name = "John"  # 字符串
print counter
print miles
print name

print "\n------ 多个变量赋值 ------"
a = b = c = 1
print a
a, b, c = 1, 2, "john"
print c

# =========== 标准数据类型 start ===========
# Numbers（数字）
# int（有符号整型）
# long（长整型[也可以代表八进制和十六进制]）
# float（浮点型）
# complex（复数）
print "\n------ Numbers（数字） ------"
var1 = 1
var1 = 10
print var1
del var1  # 删除对象的引用

# String（字符串）
print "\n------ String（字符串） ------"
var1 = "abcdefg"
print var1[1:6]
print var1[1:6:2]  # Python 列表截取可以接收第三个参数，参数作用是截取的步长
print var1[-7:]
print var1[3:]
print var1 * 2  # 输出字符串两次
print var1 + "TEST"  # 输出连接的字符串

# List（列表）
print "\n------ List（列表） ------"
list = ['runoob', 786, 2.23, 'john', 70.2]
tinylist = [123, 'john']
print list  # 输出完整列表
print list[0]  # 输出列表的第一个元素
print list[1:3]  # 输出第二个至第三个元素
print list[2:]  # 输出从第三个开始至列表末尾的所有元素
print list * 2  # 输出列表两次
print list + tinylist  # 打印组合的列表

# Tuple（元组）
# 但是元组不能二次赋值，相当于只读列表。
print "\n------ Tuple（元组） ------"
tuple = ('runoob', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'john')

print tuple  # 输出完整元组
print tuple[0]  # 输出元组的第一个元素
print tuple[1:3]  # 输出第二个至第三个的元素
print tuple[2:]  # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2  # 输出元组两次
print tuple + tinytuple  # 打印组合的元组

# 以下是元组无效的，因为元组是不允许更新的。而列表是允许更新的
tuple = ('runoob', 786, 2.23, 'john', 70.2)
list = ['runoob', 786, 2.23, 'john', 70.2]
# tuple[2] = 1000  # 元组中是非法应用
list[2] = 1000  # 列表中是合法应用

# Dictionary（字典）
# 列表是有序的对象集合，字典是无序的对象集合
# 字典当中的元素是通过键来存取的，而不是通过偏移存取
print "\n------ Dictionary（字典） ------"
dict = {}
dict['a'] = "this is one"
dict['b'] = "this is two"
tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}

print dict['a']  # 输出键为'one' 的值
print dict['b']  # 输出键为 2 的值
print tinydict
print tinydict.keys()
print tinydict.values()

# Python数据类型转换
print "\n------ Python数据类型转换 ------"
print int("16", 10)

# =========== 标准数据类型 end ===========
